package com.nami.conver.domain.repository;


import com.nami.conver.domain.pchat.model.ConverModel;

import java.util.List;

public interface CacheConverRepository {

    boolean writeConver(ConverModel converDomain);

    /**
     * 写入多个
     *
     * @param items
     * @return
     */
    boolean writeAll(List<ConverModel> items);

    /**
     * 获取会话
     *
     * @param appKey
     * @param userId
     * @param targetId
     * @return
     */
    ConverModel get(String appKey, String userId, String targetId);

    /**
     * get more
     * 以群维度，进行查询，查询群成员会话
     * 此处da key 需要存两份，一份群维度数据，一份userId维度，进行大key拆分， hash查询。 拆分为1000份
     * 不存redis, 存入mongo呢？
     *
     * @param appKey
     * @param keys
     * @return
     */
    List<ConverModel> getConversByGrpView(String appKey, List<String> keys, String targetId);

    /**
     * 以userId 维度 查询
     *
     * @param appKey
     * @param userId
     * @param keys
     * @return
     */
    List<ConverModel> getConverFromKeys(String appKey, String userId, List<String> keys);

    void set(String key, Object value);
    boolean isExistByKey(String key);
    /**
     * l1 conver cache
     *
     * @param key
     * @return
     */
    ConverModel get(String key);

    /**
     * l1 conver cache
     * @param key
     * @param item
     */
    void insertOrUpd(String key, ConverModel item);
}
